/**
 * @author dpGroup
 */

package org.doubango.ngn.model.iterator;

/**
 * @author dpGroup
 * */

public interface INGNIterator {
	public final static String ERROR_MESSAGE_OUT_BOUND = "The iterator has gone beyond the size of array";
	public final static String ERROR_MESSAGE_INVALID_OPERATION = "invalid request or data. Perhaps next() should be called first";
	public final static String ERROR_MESSAGE_OPERATION_ON_NULL = "Operation being performed on NULL";
	public final static String ERROR_MESSAGE_TYPE_MISSMATCHED = "Type missmatched";
	boolean hasNext();
	Object next();
	
	/**
	 * @param obj can be the object to be removed. e.g. For ArrayList<Emails> object passed can be Emails
	 * @return
	 */
	boolean remove(Object obj);
	
	/**
	 * @param obj can be the object to be removed. e.g. For ArrayList<Emails> object passed can be Emails
	 * @return
	 */
	Object remove(int ind);
}
